package com.ruoyi.zxjd.work.service;

import com.ruoyi.common.core.domain.Ztree;
import com.ruoyi.zxjd.work.domain.WorkProgress;

import java.util.List;

/**
 * 工作进度Service接口
 * 
 * @author lcc
 * @date 2021-01-26
 */
public interface IWorkProgressService 
{
    /**
     * 查询工作进度
     * 
     * @param progressId 工作进度ID
     * @return 工作进度
     */
    public WorkProgress selectWorkProgressById(Long progressId);

    /**
     * 查询工作进度列表
     * 
     * @param workProgress 工作进度
     * @return 工作进度集合
     */
    public List<WorkProgress> selectWorkProgressList(WorkProgress workProgress);

    /**
     * 新增工作进度
     * 
     * @param workProgress 工作进度
     * @return 结果
     */
    public int insertWorkProgress(WorkProgress workProgress);

    /**
     * 修改工作进度
     * 
     * @param workProgress 工作进度
     * @return 结果
     */
    public int updateWorkProgress(WorkProgress workProgress);

    /**
     * 批量删除工作进度
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteWorkProgressByIds(String ids);

    /**
     * 删除工作进度信息
     * 
     * @param progressId 工作进度ID
     * @return 结果
     */
    public int deleteWorkProgressById(Long progressId);

    /**
     * 接收工作任务
     * 
     * @param progressId 工作进度ID
     * @return 结果
     */
	public int receiveTask(Long progressId);

    /**
     * 提交工作任务
     * 
     * @param progressId 工作进度IDS
     * @return 结果
     */
	public int updateWorkProgressStatusByIds(String ids);

    /**
     * 通过工作安排ID查询工作进度列表
     * 
     * @param arrangeId 工作安排ID
     * @param related  是否关联查询
     * @return 工作进度列表
     */
	public List<WorkProgress> selectWorkProgressListByArrangeId(Long arrangeId, Boolean related);

    /**
     * 退回重填
     * 
     * @param progressId 工作进度ID
     * @return 结果
     */
	public int refillTask(Long progressId);


    /**
     * 短信提示
     *
     * @param progressId 工作进度ID
     * @return 结果
     */
     int smsPrompt(Long progressId) ;

    /**
     * 查询任务处理机构树
     * @param progressId 工作进度id
     * @return
     */
    List<Ztree> selectTemplateTree(Long progressId);
}
